﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Corvus
{
    public interface IEventBroker
    {
              
        void Publish<TEventArgs>(object sender, TEventArgs e) where TEventArgs : EventArgs;

        void Publish(string topic, object sender, EventArgs e);

        void Subscribe<TEventArgs>(object subscriber, EventHandler<TEventArgs> handler) where TEventArgs : EventArgs;

        void Publish(string topic, object subscriber, EventHandler handler);

    }
}
